#include<iostream>
#include<string>
#include<cstdio>
#include<unistd.h>
#include<pthread.h>
//创建进程、等待进程、终止进程 

using namespace std;

//2.实验：多个线程同时访问一个全局变量，并对数据进行运算，多线程之间会相互影响吗？

//1.创建新线程，执行threadRoutine函数
//测试结论总结：1.1 线程谁先运行取决于调度器;1.2 线程一旦异常，都可能导致整个进程整体退出
//1.3 线程在创建执行的时候，线程是需要等待的，如果主线程不进行等代，则该线程会成为僵尸线程
//  void*threadRoutine(void*args)
// {
//     int i =0;
//     while(true)
//     {
//         cout<<"新线程："<<(char*)args<<"running////"<<endl;
//         sleep(1);
//         if(i++ ==10) break;
//     }
//     //终止进程测试

//     cout<<"new thread quit ..."<<endl;
//     //返回值：线程执行完成后，该线程返回的数值
//     return nullptr;
// }

// int main()
// {
//     //线程Pid
//     pthread_t tid;
//     //创建进程：返回pid，线程属性，线程启动后执行的函数方法，传给线程启动函数的参数
//     pthread_t(&tid,nullptr,threadRoutine,(void*)"thread1");
    
//     //主进程等待线程退出
//     //因为内部使用的二级指针，所以需要传送二级指针，子线程执行结束后的退出码，相应的存储到ret中
//     void* ret =nullptr;
//     pthread_join(tid,&ret);
//     cout<<"main thread wait done..main quit .....\n";

//     return 0;

// }
